$(function() {
	initListence();
	initTable();
});

function initListence(){
	//事件监听
	$("#btn_notice").off("click").on("click",notice);
}

function notice(){
	$('#myModal #myModalLabel').text("新增用户");
	$('#myModal .modal-body').load("/users/detail/1");
	$('#myModal').modal("show");
}

function initTable() {
	// 初始化Table
	var oTable = new TableInit();
	oTable.Init();
}

var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$('#tb_users').bootstrapTable({
			url : '/auth/users/', // 请求后台的URL（*）
			method : 'get', // 请求方式（*）
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : false, // 是否启用排序
			sortOrder : "asc", // 排序方式
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : false, // 是否显示所有的列
			showRefresh : false, // 是否显示刷新按钮
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height : 500, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "ID", // 每一行的唯一标识，一般为主键列
			showToggle : false, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false, // 是否显示父子表
			responseHandler : function(res) {
				return {
					"total" : res.total,// 总页数
					"rows" : res.list
				// 数据
				};
			},
			columns : [ {
				checkbox : true
			}, {
				field : 'refid',
				title : '主键',
				visible: false
			}, {
				field : 'userName',
				title : '用户名'
			}, {
				field : 'sex',
				title : '性别'
			}, {
				field : 'nickName',
				title : '昵称'
			}, {
				field : 'telephone',
				title : '手机号码'
			}, {
				field : 'nickName',
				title : '昵称'
			}, {
				field : 'Button',
				title : '操作',
				align: 'center',
				formatter: actionFormatter, 
				events:actionEvents
			}]
		});
	};
	
	function actionFormatter(value, row, index) {
		var result = "";
			result+='<a id="show_userDetail" href="javascript:void(0)" title="查看"><i  class="fa fa-search-plus" aria-hidden="true""></i></a> ';
			result+='&thinsp; <a id="update_user" href="javascript:void(0)" title="修改"><i  class="fa fa-pencil-square" aria-hidden="true""></i></a> ';
			result+='&thinsp; <a id="del_user" href="javascript:void(0)" title="删除"><i class="fa fa-trash" aria-hidden="true"></i></a>';
		return result;
	};
	
	window.actionEvents = {
		'click #del_user':function(e,value,row,index){
			var refid = row.refid;
			$.ajax({
				url:"/auth/users/"+refid,
				data:{token:refid},
				async:true,
				dataType : "json",
				type:"DELETE",
				headers: { 
				      "Content-Type": "application/json",
				      "X-HTTP-Method-Override": "DELETE" 
				}, //PUT,DELETE
				success: function(data){
					writeLog("删除成功");
				}
			});
		},
		'click #update_user':function(e,value,row,index){
			$.ajax({
				url:"/auth/users/"+refid,
				data:{token:refid},
				async:true,
				dataType : "json",
				type:"PUT",
				headers: { 
				      "Content-Type": "application/json",
				      "X-HTTP-Method-Override": "PUT" 
				}, //PUT,DELETE
				success: function(data){
					writeLog("删除成功");
				}
			});
		}
	}

	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
			limit : params.limit, // 页面大小
			offset : params.offset, // 页码
			departmentname : $("#txt_search_departmentname").val(),
			statu : $("#txt_search_statu").val()
		};
		return temp;
	};
	return oTableInit;
};
